X-Git-Url: https://permondes.de/gitweb/Analog_Engine.git/blobdiff_plain/7fbf87e4750e1393d9b6395818b70000ca99c758..6e4089e8217c971c0154c414f5fed5d0807d179e:/scripts/Damped%20Harmonic%20Oscillator.AESL?ds=sidebyside diff --git a/scripts/Damped Harmonic Oscillator.AESL b/scripts/Damped Harmonic Oscillator.AESL new file mode 100644 index 0000000..7451fcb --- /dev/null +++ b/scripts/Damped Harmonic Oscillator.AESL @@ -0,0 +1,39 @@ +IDENTIFICATION DIVISION +PROGRAM-ID Damped_Oscillator + +ENVIRONMENT DIVISION +ENGINE Anabrid-THAT +REQUIRES COEFFICIENT 5 +REQUIRES INTEGRATOR 2 +REQUIRES INVERTER 1 +REQUIRES SUMMER 2 + +DATA DIVISION +OUTPUT OUTPUT.U y +COEFFICIENT.1 InitialPosition +COEFFICIENT.2 InitialSpeed +COEFFICIENT.3 SpringForce +COEFFICIENT.4 Damping # linear to speed +COEFFICIENT.5 Mass # 1 / mass + +PROGRAM DIVISION +# Colors being used for wiring +# - black: y0 +# - blue: y0’ +# - green: y0’’ +# - yellow: y’’, y’ +# - red: y +-1 -> COEFFICIENT.InitialPosition -> -y0 # -initial position of the mass +-1 -> COEFFICIENT.InitialSpeed -> y0s’ # y’ is scaled to be within -1..+1 ++1, y0s’, y0s’ -> SUMMER -> y0’ +y’’, IC:y0’ -> INTEGRATOR -> -y’ +-y’,IC:-y0 -> INTEGRATOR -> y +y -> COEFFICIENT.SpringForce -> S*y # springforce times displacement +-y’ -> INVERTER -> y’ +y’ -> COEFFICIENT.Damping -> D*y’ # damping times speed +S*y, D*y’ -> SUMMER -> -(Dy’+Sy) +-(Dy’+Sy) -> COEFFICIENT.Mass -> -1/m*(Dy’+Sy)=y’’ + +OPERATION DIVISION +MODE REPEAT +OP-TIME 80ms